﻿using System.Web.Optimization;
using System.Web;
using System.Text;
using System.Linq;
using System.Web.Mvc;

namespace Pe.Petecos.Comercial.Presentacion.Core.Helpers
{
    /// <summary>
    /// Helpers personalizados
    /// </summary>
    /// <remarks>
    /// Creación:   GMD 22122014 <br />
    /// Modificación:            <br />
    /// </remarks>
    public static class CustomHtmlHelper
    {
        /// <summary>
        /// Renderiza los archivos js optimizados segun la vista actual
        /// </summary>
        /// <returns></returns>
        public static IHtmlString RenderViewJs(string scriptView = null)
        {
            if (string.IsNullOrWhiteSpace(scriptView))
            {
                var actionName = HttpContext.Current.Request.RequestContext.RouteData.Values["action"] ?? "";
                var controllerName = HttpContext.Current.Request.RequestContext.RouteData.Values["controller"] ?? "";
                var area = HttpContext.Current.Request.RequestContext.RouteData.DataTokens["area"] ?? "";
                scriptView = area.ToString().ToLower() + controllerName.ToString().ToLower() + actionName.ToString().ToLower();
            }

            scriptView = "~/Scripts/" + scriptView;

            var exists = BundleTable.Bundles.GetRegisteredBundles().Any(b => b.Path == scriptView);
            IHtmlString result = null;
            if (exists)
            {
                result = Scripts.Render(scriptView);
            }

            return result;
        }
        /// <summary>
        /// Renderiza el componente Menú
        /// </summary>
        /// <returns>Html generado para el menú</returns>
        public static MvcHtmlString RenderMenu()
        {
            //CuentaUsuario user = HttpGyMSessionContext.CurrentAccount();
            string htmlMenu = "";
            //if (user != null)
            //{


            //    TagBuilder nav = new TagBuilder("nav");
            //    nav.Attributes.Add("data-script", "asideSlide");
            //    nav.Attributes.Add("data-element", "slide");
            //    nav.AddCssClass("nav-GmdNavMain");


            //    TagBuilder ul = new TagBuilder("ul");
            //    string innerHtmlUl = "";

            //    if (user.Modulos != null)
            //    {
            //        foreach (var module in user.Modulos)
            //        {
            //            string link = CreateItemLinkModule(module);

            //            innerHtmlUl += link;
            //        }
            //    }
            //    ul.InnerHtml = innerHtmlUl;
            //    nav.InnerHtml = "<div class='bl-slide'></div>" + ul.ToString();
            //    /*nav.InnerHtml = nav.ToString();*/
            //    htmlMenu = nav.ToString();
            //}
            return MvcHtmlString.Create(htmlMenu);
        }

        //private static string CreateItemLinkModule(Modulo module)
        //{
        //    StringBuilder modulo = new StringBuilder();
        //    modulo.Append("<li class='GmdNavMain-menuDropdown active' data-menu='disabled'>");
        //    modulo.Append("<a class='active' href='#'>");
        //    modulo.Append("<span class='wrap-icon'>");
        //    modulo.Append("<i class='fa " + module.Icono + "'></i></span><span class='wrap-text'>");
        //    modulo.Append("<span class='text'>" + module.Nombre + "</span></span></a>");
        //    modulo.Append("<ul class='GmdNavMain-subMenu'>");
        //    modulo.Append("<li class='title'>");
        //    modulo.Append(module.Nombre);
        //    modulo.Append("</li>");
        //    if (module.SubModulos != null && module.SubModulos.Any())
        //    {
        //        string subModulo = CreateContentModule(module);
        //        modulo.Append(subModulo);
        //    }
        //    modulo.Append("</ul>");
        //    modulo.Append("</li>");
        //    return modulo.ToString();
        //}

        //private static string CreateContentModule(Modulo module)
        //{
        //    StringBuilder menuUl = new StringBuilder();

        //    if (module.SubModulos != null && module.SubModulos.Any())
        //    {

        //        foreach (var subModule in module.SubModulos)
        //        {
        //            var mainView = subModule.GetPrincipalView();
        //            UrlHelper url = new UrlHelper(HttpContext.Current.Request.RequestContext);

        //            menuUl.Append("<li><a href='" + url.Content("~/") + mainView.URL + "' >");//data-navAjax="true"
        //            menuUl.Append("<span class='wrap-text-inner'>");
        //            menuUl.Append("<span class='text'>");
        //            menuUl.Append(subModule.Nombre);
        //            menuUl.Append("</span>");
        //            menuUl.Append("</span></a></li>");
        //        }

        //    }

        //    return menuUl.ToString();
        //}
    }

}
